﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aplicacion.Base.WinForm;
using BaseDatos.Comun;
using System.Data;
using BaseDatos;

namespace Modulo.Seguridad.Base
{
    public class EBModulo:EntidadBase
    {
        #region Campos
        private string codigo = "";
        private string descripcion = "";
        #endregion

        #region Propiedades
        public string Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        #endregion

        #region Constructores
          public EBModulo()
          : base()
        {

            //throw; new System.NotImplementedException();
        }

        public EBModulo(DataRow registro)
            : this()
        {
            Cargar(registro);
        }


        public EBModulo(string Modulo)
            : this()
        {
            Cargar(Modulo);
        }
        #endregion

        protected void Cargar(string codmodulo)
        {
            DbParametro[] Parametros = new DbParametro[1];
            Parametros[0] = new DbParametro("pcodmod", codmodulo);
            ////Consulta la base de datos y crea un dataset
            DataSet Ds = ConexionBaseDatos.Conexion.CrearDataSet("GETCK_MODULO", Parametros);
            ////Si hay más de 0 registros llama el venteo cargar(DataRow Registro)
            if (Ds.Tables[0].Rows.Count > 0)
            {
                Cargar(Ds.Tables[0].Rows[0]);
            }
        }
        public override void Grabar()
        {
            try
            {
                DbParametro[] Parametros = new DbParametro[4];
                Parametros[0] = new DbParametro("pcodmod", codigo);
                Parametros[1] = new DbParametro("pdscmod", descripcion);
                Parametros[2] = new DbParametro("pusuario", Environment.UserName.ToUpper());
                Parametros[3] = new DbParametro("pestacion", Environment.MachineName.ToUpper());
                ConexionBaseDatos.Conexion.EjecutarComando("SETCK_MODULO", Parametros);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public override void Eliminar()
        {
            try
            {
                DbParametro[] Parametros = new DbParametro[4];
                Parametros[0] = new DbParametro("pcodmod", codigo);
                Parametros[1] = new DbParametro("pusuario", Environment.UserName.ToUpper());
                Parametros[2] = new DbParametro("pestacion", Environment.MachineName.ToUpper());
                Parametros[3] = new DbParametro("popcion", "DEL01");
                ConexionBaseDatos.Conexion.EjecutarComando("DELCK_MODULO", Parametros);
            }
            catch (Exception)
            {
                throw;
            }
        }
        protected override void Cargar(System.Data.DataRow Registro)
        {
            base.Cargar(Registro);
            if (DataRow != null)
            {
                try
                {
                    codigo = RetornarCampo("codmod", codigo).ToString();
                    descripcion = RetornarCampo("dscmod", descripcion).ToString();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

    }
}
